#ifndef _COLOR_H
#define _COLOR_H

#include <boost/numeric/ublas/vector.hpp>
#include <boost/numeric/ublas/io.hpp>
#include <cmath>


namespace rt
{

class Color
{
public:
    Color();
    Color(double a,double b,double c);
    boost::array<double,3> data();
    double data(int n);
    void setData(int n,double a);
    void setZeros();
    void setOnes();
    void setAll(double a,double b,double c);
    double getRed();
    double getGreen();
    double getBlue();

    virtual Color operator+( Color &a) ;
    virtual Color operator-( Color &a) ;
    virtual double operator*( Color &a) ;
    virtual Color operator*( double a) ;
    virtual Color operator^( Color &a) ;
    virtual void operator=( Color a) ;

private:
    boost::array<double,3> d;
};

}
#endif
